package com.quiz.bis.domain.model;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.quiz.common.core.domain.BaseModel;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 考生题目作答详情记录表
 *
 * @author ahuan
 */
@Data
@EqualsAndHashCode(callSuper = true)
@TableName("exam_question_answers")
public class ExamQuestionAnswers extends BaseModel {

    @TableId(type = IdType.AUTO)
    private Long id;

    @TableField("exam_id")
    private Long examId;

    @TableField("student_record_id")
    private Long studentRecordId;

    @TableField("user_id")
    private Long userId;

    @TableField("question_id")
    private Long questionId;

    @TableField("question_type_id")
    private Long questionTypeId;

    @TableField("answer_content")
    private String answerContent;

    @TableField("selected_option_ids")
    private String selectedOptionIds;

    @TableField("selected_option_codes")
    private String selectedOptionCodes;

    @TableField("file_attachment_ids")
    private String fileAttachmentIds;

    @TableField("is_correct")
    private Integer isCorrect;

    @TableField("score")
    private BigDecimal score;

    @TableField("max_score")
    private BigDecimal maxScore;

    @TableField("auto_score")
    private BigDecimal autoScore;

    @TableField("manual_score")
    private BigDecimal manualScore;

    @TableField("score_status")
    private Integer scoreStatus;

    @TableField("correct_by")
    private Long correctBy;

    @TableField("correct_time")
    private Date correctTime;

    @TableField("correct_comment")
    private String correctComment;

    @TableField("first_answer_time")
    private Date firstAnswerTime;

    @TableField("last_update_time")
    private Date lastUpdateTime;

    @TableField("time_spent")
    private Integer timeSpent;

    @TableField("is_submitted")
    private Integer isSubmitted;

    @TableField("is_marked")
    private Integer isMarked;

    @TableField("appeal_content")
    private String appealContent;

    @TableField("appeal_time")
    private Date appealTime;

    @TableField("appeal_status")
    private Integer appealStatus;

    @TableField("appeal_handler_id")
    private String appealHandlerId;

    @TableField("appeal_handle_time")
    private Date appealHandleTime;

    @TableField("appeal_handle_result")
    private String appealHandleResult;

    @TableField(exist = false)
    private Question question;

    @TableField(exist = false)
    private Exam exam;




}